package br.com.ponto.mb;

import java.text.DecimalFormat;
import java.text.NumberFormat;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

@ManagedBean(name="calculadoraMB")
@RequestScoped
public class CalculadoraMB {
	
	private Double valor;
	private String unidadeMedidaDe;
	private String unidadeMedidaPara;
	
	public String getResultado() {
		if(this.valor == null)
			return "0.00";
		NumberFormat nf = new DecimalFormat("#0.00");
		NumberFormat nfHHMM = new DecimalFormat("00");
		
		
		if("H".equals(this.unidadeMedidaDe) && "M".equals(this.unidadeMedidaPara)) {
			Double tempoMinutos = this.valor*60;
			int horas = tempoMinutos.intValue()/60;
			int minutos = tempoMinutos.intValue() % 60;
			
			return nf.format(tempoMinutos) + "  (" + nfHHMM.format(horas) + " horas e " + nfHHMM.format(minutos) +" minutos)";
		} else if ("M".equals(this.unidadeMedidaDe) && "H".equals(this.unidadeMedidaPara)) {
			int horas = this.valor.intValue()/60;
			int minutos = this.valor.intValue() % 60;
			
			return nf.format(this.valor/60)  + "  (" + nfHHMM.format(horas) + " horas e " + nfHHMM.format(minutos) +" minutos)";
		} else if ("M".equals(this.unidadeMedidaDe) && "M".equals(this.unidadeMedidaPara)){
			int horas = this.valor.intValue()/60;
			int minutos = this.valor.intValue() % 60;
			
			return nf.format(this.valor.doubleValue()) + "  (" + nfHHMM.format(horas) + " horas e " + nfHHMM.format(minutos) +" minutos)";
		} else {
			Double tempoMinutos = this.valor*60;
			int horas = tempoMinutos.intValue()/60;
			int minutos = tempoMinutos.intValue() % 60;
			
			return nf.format(this.valor.doubleValue()) + "  (" + nfHHMM.format(horas) + " horas e " + nfHHMM.format(minutos) +" minutos)";
		}
	}
	
	public Double getValor() {
		return valor;
	}
	public void setValor(Double valor) {
		this.valor = valor;
	}
	public String getUnidadeMedidaDe() {
		return unidadeMedidaDe;
	}
	public void setUnidadeMedidaDe(String unidadeMedidaDe) {
		this.unidadeMedidaDe = unidadeMedidaDe;
	}
	public String getUnidadeMedidaPara() {
		return unidadeMedidaPara;
	}
	public void setUnidadeMedidaPara(String unidadeMedidaPara) {
		this.unidadeMedidaPara = unidadeMedidaPara;
	}
	
	
	

}
